//https://leetcode.cn/problems/construct-string-from-binary-tree/description/
//根据二叉树创建字符串
//给你二叉树的根节点 root ，请你采用前序遍历的方式，将二叉树转化为一个由括号和整数组成的字符串，返回构造出的字符串。
//空节点使用一对空括号对 "()" 表示，转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。

class Solution {
public:
    string tree2str(TreeNode* root) {
        if(root == nullptr)
            return "";

        if(root->left == nullptr && root->right == nullptr)
            return to_string(root->val);
        else if(root->right != nullptr)
            return to_string(root->val) + "(" + tree2str(root->left) + ")" + "(" + tree2str(root->right) + ")";
        else
            return to_string(root->val) + "(" + tree2str(root->left) + ")";
    }
};